#ifndef ORQUERY_H
#define ORQUERY_H
#include"BinaryQuery.h"
#include <memory>
using std::shared_ptr; using std::make_shared;
#include <set>
#include <algorithm>

class OrQuery : public BinaryQuery {
    friend Query operator| (const Query&,const Query&);
    OrQuery(const Query &left,const Query &right):BinaryQuery(left,right,"|"){}
    QueryResult eval(const TextQuery&) const override;
};
inline Query operator| (const Query &lhs, const Query&rhs){
    return shared_ptr<Query_base>(new OrQuery(lhs,rhs));
};
#endif 